import 'package:built_collection/built_collection.dart';
import 'package:backend.core/core/domain/entities/email_verification_code.dart';

abstract class EmailVerificationCodeRepository {
  Future<EmailVerificationCode?> findEmailVerificationCodeByEmail({
    required String email,
  });

  Future<BuiltList<EmailVerificationCode>> findEmailVerificationCodes();

  Future<void> upsertEmailVerificationCode({
    required EmailVerificationCode emailVerificationCode,
  });

  Future<void> deleteEmailVerificationCodeByEmail({
    required String email,
  });

  Future<void> deleteEmailVerificationCodesByEmails({
    required BuiltList<String> emails,
  });
}
